Mobile devices, like tablet computers and smart phones allow providers of web based applications and services like e-commerce applications to offer new user interface variants in form of mobile applications or apps. Those mobile applications are installed on a mobile device operated by the end user and communicate with backend, server side functionality of an application to provide application services in a way that is tailored to the needs of the application provider. Those mobile applications are also adapted to the resource and user interface requirements of the mobile device.
Typically, mobile devices also provide web-browsers, capable to display standard or mobile-device optimized application web-content, but a browser based user interface often lacks the flexibility and ease of use of a dedicated mobile application.
Mobile applications also allow to shift a portion of the functionality of the application from backend servers to the mobile device, to improve the performance of the application perceived by the end user, e.g. by reducing the number of server round-trips required to perform application functionality.
As the mobile application represents an important interface to the end user and is relevant for the user perception regarding functionality, reliability and performance of the whole application, visibility to functionality and performance delivered by the mobile application becomes an important requirement for operators of applications and services including a mobile application based interface variant.
Another category of devices that typically only provide restricted resources for the execution of applications are TV Set Top Boxes. Although those devices are typically not mobile, requirements like small size, low price and low or no noise emission during operation, dictate a small hardware footprint of such devices which in turn only allows to provide a restricted set of resources and capabilities for the execution of applications.
Next to the two here described device categories, other types of devices may exist which have to cope with similar requirements and that in turn also provide application execution environments with restricted resources and capabilities. The described limitations and proposed solutions to allow the instrumentation of applications running in those environments may also be applied to devices of those types.
The execution environment of such mobile devices is designed to cope with limited hardware resources and optimized for low power consumption. As a consequence, features available in standard execution environments that are used by monitoring systems to instrument application code to gain visibility into behavior and performance characteristics of the application are not available. As an example, dynamic instrumentation of bytecode or other intermediate code during application runtime is typically not available in mobile environments.
To overcome this limitations, some monitoring systems provide infrastructure to manually augment the source code of a mobile application with instrumentation code. With this approach, developers manually place sensor calls into the source code of the application. Those sensors calls do not influence the designed functionality of the application, but they determine and report operating conditions of application functionality, like its CPU or memory consumption, or execution duration and thus provide insight into the internal conditions of application functionality. Consequently, the source code of the mobile application already contains calls to sensor code that gathers and provided monitoring data describing functionality and behavior of the application. However, placing those sensor calls in application source code tends to be cumbersome, repetitive and error prone manual work.
A solution is desired that reduces the requirement of manually placed sensors to a minimum while providing the required visibility into functionality and performance of the monitored mobile applications.
This section provides background information related to the present disclosure which is not necessarily prior art.